In general, data processing systems employ registers to store data. The registers are constructed in a variety of ways depending upon the application for the data processing system. For example, a data processing system utilizing a register for latching data on a bus may only require one read and one write port. In more complex data processing systems, applications may require more complex registers having multiple read and write ports.
Microprocessors utilize registers to implement file registers for use in conjunction with executing instructions. The file registers store data subsequent to execution by an execution unit in the microprocessor. The complexity of the register file required for operation of the microprocessor is dependent upon the architecture of the microprocessor. For example, in a superscaler microprocessor, some instructions are executed in parallel which increases the need for access to the register file. Consequently, a register file for use in operation of a complex superscaler microprocessor may require multi-ports.
Typically, storage arrays employ data lines to transmit data from a selected data cell to a comparator system to determine the state stored in the selected cell. In all types of storage arrays employing electrical conductors, parasitic capacitance is introduced on the electrical conductors. The capacitance introduced on the electrical conductors during a read operation causes slow rise times. The slow rise times result in slow access time specifications for the storage array. Therefore, in order to maximize access times to a storage array, such as a register file, it is desirable to reduce or eliminate slow rise times. By increasing the access times to the register file, fast read and write operations are attainable. Therefore, in addition to providing multi-ports for the register file in a superscalar microprocessor, it is also desirable to provide quick access to the register file.
When reading data from storage arrays, sense amplifiers are often utilized to compare the state of a selected cell to a common reference. However, in microprocessors requiring multi-port register files, the multi-port register file requires multiple sense amplifiers. Because die size is typically a concern in integrated circuit design, it is desirable to design a multi-port register file that does not require the use of sense amplifiers while maintaining high integrity in a read operation.